package com.joker.aigc.oj.domain.vo.problemsubmit;

import cn.hutool.json.JSONUtil;

import com.joker.aigc.oj.domain.entity.ProblemSubmit;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * 题目提交封装类
 *
 * @TableName question
 */
@Data
public class ProblemSubmitVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 创建用户的id信息
     */
    private Long id;
    /**
     * 提交语言
     */
    private String language;
    /**
     * 提交代码
     */
    private String code;

    /**
     * 判题信息
     */
    private JudgeInfo judgeInfo;

    /**
     * 判题状态（0 - 待判题、1 - 判题中、2 - 成功、3 - 失败）
     */
    private Integer status;

    /**
     * 提交时间
     */
    private Long problemId;
    /**
     * 提交用户信息信息
     */
    private Long userId;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 用户名信息
     */
    private String userName;

    /**
     * 对象转包装类
     *
     * @param problemSubmit 实体类
     * @return 转换后的实体类
     */
    public static ProblemSubmitVO objToVo(ProblemSubmit problemSubmit) {
        if (problemSubmit == null) {
            return null;
        }
        ProblemSubmitVO problemSubmitVO = new ProblemSubmitVO();
        BeanUtils.copyProperties(problemSubmit, problemSubmitVO);
        problemSubmitVO.setJudgeInfo(JSONUtil.toBean(problemSubmit.getJudgeInfo(), JudgeInfo.class));
        return problemSubmitVO;
    }


}